// 对于 axios 进行二次封装
import axios from 'axios'
// // 引入进度条 与进度条样式
// import store from '@/store'

const getToken = function (): string {
  // const token = store.getters.GET_TOKEN()
  // return token ?? null
  return null
}

// axios基本对象配置
const requests = axios.create({
  // 配置对象
  // 基础路径 ，发请求的时候 路径当中会出现api
  // baseURL:'http://192.168.87.101:8081/api/',
  baseURL: import.meta.env.VITE_APP_BASE_API,
  // 配置超时时间
  timeout: 5000
})

// 请求拦截器 :在发送请求之前请求拦截器可以检测到
requests.interceptors.request.use((config) => {
  // config : 配置对象
  // 进度条开始
  // nprogress.start();
  // 请求带token!
  const token = getToken()
  if (token != null) {
    config.headers.Authorization = `Bearer ${token}` // 配置token在这里
  }
  return config
})

// 响应拦截器
requests.interceptors.response.use(
  (succeed) => {
    // 进度条结束
    // nprogress.done();
    return succeed.data
  },
  (err) => {
    return Promise.reject(new Error(err))
  }
)

// 对外暴露
export default requests
